package org.zebra.mybatis.plus.core.query;

import java.lang.annotation.*;

/**
 * 查询注解
 *
 * @author zhanghongbin
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Query {

    /**
     * 属性名（默认和使用该注解的属性的名称一致）
     * @return  字符串
     */
    String property() default "";

    /**
     * 查询类型（等值查询、模糊查询、范围查询等）
     * @return  查询对象
     */
    QueryType type() default QueryType.EQUAL;

    /**
     * 多属性模糊查询，仅支持 String 类型属性
     * <p>
     * 例如：@Query(blurry = {"username", "email"}) 表示根据用户名和邮箱模糊查询
     * </p>
     * @return  数组
     */
    String[] blurry() default {};
}
